\documentclass{article}
\newcommand{\co}[1]{\texttt{#1}}
\begin{document}

\section{DCP-o-matic unit tests}

The files in this directory can be grouped roughly into the following:

\subsection{Self-contained tests of single classes / method sets}

\begin{tabular}{|l|l|}
  \hline
  \textbf{Class / source file} & \textbf{File} \\
  \hline
  \co{AudioAnalysis} & \co{audio\_analysis\_test} \\
  \hline
  \co{AudioBuffers} & \co{audio\_buffers\_test} \\
  \hline
  \co{AudioMapping} & \co{audio\_mapping\_test} \\
  \hline
  \co{AudioMerger} & \co{audio\_merger\_test} \\
  \hline
  \co{AudioFilter} & \co{audio\_filter\_test} \\
  \hline
  \co{ColourConversion} & \co{colour\_conversion\_test} \\
  \hline
  \co{FileGroup} & \co{file\_group\_test} \\
  \hline
  \co{Image} & \co{image\_test}, \co{pixel\_formats\_test}, \co{make\_black\_test} \\
  \hline
  \co{Player} & \co{player\_test} \\
  \hline
  \co{Job/JobManager} & \co{job\_test} \\
  \hline
  \co{Ratio} & \co{ratio\_test} \\
  \hline
  \co{Resampler} & \co{resampler\_test} \\
  \hline
  \co{util.cc} & \co{util\_test} \\
  \hline
\end{tabular}

\subsection{``Complete'' builds of DCPs with various characteristics, aiming to test broad areas of code}

\begin{itemize}
  \item \co{4k\_test}
  \item \co{threed\_test}
  \item \co{torture\_test}
\end{itemize}

\subsection{Tests of fairly specific areas}

\begin{tabular}{|l|p{8cm}|}
  \hline
  \textbf{File} & \textbf{Test summary} \\
  \hline
  \co{audio\_delay\_test} & Some FFmpeg content with audio delays. \\
  \hline
  \co{client\_server\_test} & An encode server running on \co{localhost}. \\
  \hline
  \co{digest\_test} & Computed DCP digests compared to those calculated by the \co{openssl} binary. \\
  \hline
  \co{film\_metadata\_test} & Read/write of \co{Film} metadata. \\
  \hline
  \co{frame\_rate\_test} & Frame rate conversion calculations. \\
  \hline
  \co{recover\_test} & Re-making a DCP when a previous run was interrupted. \\
  \hline
  \co{repeat\_frame\_test} & Repetition of 24fps content in a 48fps DCP. \\
  \hline
  \co{scaling\_test} & Scaling and black-padding of images. \\
  \hline
  \co{silence\_padding\_test} & \\
  \hline
  \co{skip\_frame\_test} & \\
  \hline
\end{tabular}

\subsubsection{FFmpeg decoding}

\begin{itemize}
\item \co{ffmpeg\_audio\_test}
\item \co{ffmpeg\_dcp\_test}
\item \co{ffmpeg\_decoder\_seek\_test}
\item \co{ffmpeg\_decoder\_sequential\_test}
\item \co{ffmpeg\_examiner\_test}
\item \co{ffmpeg\_pts\_offset\_test}
\item \co{stream\_test}
\end{itemize}

\co{test/audio\_processor\_delay\_test.cc}
\co{test/audio\_processor\_test.cc}
\co{test/burnt\_subtitle\_test.cc}
\co{test/dcpomatic\_time\_test.cc}
\co{test/dcp\_subtitle\_test.cc}
\co{test/ffmpeg\_audio\_only\_test.cc}
\co{test/file\_log\_test.cc}
\co{test/file\_naming\_test.cc}
\co{test/image\_filename\_sorter\_test.cc}
\co{test/import\_dcp\_test.cc}
\co{test/interrupt\_encoder\_test.cc}
\co{test/isdcf\_name\_test.cc}
\co{test/j2k\_bandwidth\_test.cc}
\co{test/rect\_test.cc}
\co{test/reels\_test.cc}
\co{test/render\_subtitles\_test.cc}
\co{test/required\_disk\_space\_test.cc}
\co{test/srt\_subtitle\_test.cc}
\co{test/ssa\_subtitle\_test.cc}
\co{test/test.cc}
\co{test/time\_calculation\_test.cc}
\co{test/update\_checker\_test.cc}
\co{test/upmixer\_a\_test.cc}
\co{test/vf\_kdm\_test.cc}
\co{test/vf\_test.cc}
\co{test/video\_content\_scale\_test.cc}
\co{test/video\_mxf\_content\_test.cc}

\end{document}
